Dialogs positioned with action visualization

ABSTRACT

Dialogs within a user interface. The user interface has one or more selectable elements, the selection of each of which initiating a corresponding action. Each time that any of the elements is selected, and a corresponding action initiated, there is the potential for the user interface to display a dialog associated with the initiated action. The dialogs are displayed so as to be positioned with respect to the element whose selection caused the corresponding action to be initiated.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of each of the following provisionalpatent applications, and each of the following provisional patentapplications are incorporated herein by reference in their entirety:

1. U.S. Provisional Application Ser. No. 61/905,128, filed Nov. 15,2013;

2. U.S. Provisional Application Ser. No. 61/884,743, filed Sep. 30,2013;

3. U.S. Provisional Application Ser. No. 61/905,111, filed Nov. 15,2013;

4. U.S. Provisional Application Ser. No. 61/905,243, filed Nov. 17,2013;

5. U.S. Provisional Application Ser. No. 61/905,114, filed Nov. 15,2013;

6. U.S. Provisional Application Ser. No. 61/905,116, filed Nov. 15,2013;

7. U.S. Provisional Application Ser. No. 61/905,129, filed Nov. 15,2013;

8. U.S. Provisional Application Ser. No. 61/905,105, filed Nov. 15,2013;

9. U.S. Provisional Application Ser. No. 61/905,247, filed Nov. 17,2013;

10. U.S. Provisional Application Ser. No. 61/905,101, filed Nov. 15,2013; and

11. U.S. Provisional Application Serial No. 61/905,119, filed Nov. 15,2013.

BACKGROUND

A current paradigm for navigating through various information contextsis windows based. A classic example of this is the web browserexperience. A user might begin with a home page that occupies the entirebrowser space. The user might then select a hyperlink, whereupon a newwindow appears. However, the previous window either disappears or, inthe case of exercising an option to open the new page in a new window,the previous window is fully, or at least partially, hidden.

The subject matter claimed herein is not limited to embodiments thatsolve any disadvantages or that operate only in environments such asthose described above. Rather, this background is only provided toillustrate one exemplary technology area where some embodimentsdescribed herein may be practiced.

SUMMARY

At least some embodiments described herein relate to dialogs within auser interface. The user interface has one or more selectable elements,the selection of each of which initiating a corresponding action. Eachtime that any of the elements is selected, and a corresponding actioninitiated, there is the potential for the user interface to display adialog associated with the initiated action. The dialogs are displayedso as to be positioned with respect to the element whose selectioncaused the corresponding action to be initiated.

In some cases, the dialog may have a resolution control associated withit, the selection of which causes the dialog to be removed. The displaydistance between the selected element and the resolution control may bedesigned to be reduced. For instance, if the dialog appears below theselected element whose selection initiated the action, the resolutioncontrol might appear in the upper half of the dialog.

The dialog may be modeless in that the dialog need not be resolvedbefore performing further actions and does not block the user interfacefrom allowing other interactions. Thus, multiple dialogs might bepresented over time, as the resolution of such dialogs may be postponedwhile other actions are performed.

This summary is provided to introduce a selection of concepts in asimplified form that are further described below in the DetailedDescription. This Summary is not intended to identify key features oressential features of the claimed subject matter, nor is it intended tobe used as an aid in determining the scope of the claimed subjectmatter.

BRIEF DESCRIPTION OF THE DRAWINGS

In order to describe the manner in which the above-recited and otheradvantages and features of the invention can be obtained, a moreparticular description of the invention briefly described above will berendered by reference to specific embodiments thereof which areillustrated in the appended drawings. Understanding that these drawingsdepict only typical embodiments of the invention and are not thereforeto be considered to be limiting of its scope, the invention will bedescribed and explained with additional specificity and detail throughthe use of the accompanying drawings in which:

FIG. 1 abstractly illustrates an example computing system in which theprinciples described herein may be employed;

FIG. 2 abstractly illustrates an environment that includes a userinterface that has multiple selectable elements;

FIG. 3 illustrates a supporting architecture for a user interface suchas that of FIG. 2;

FIG. 4 illustrates displayed items in the form of a blade that includesa selectable element that includes an action visualization of an actiontriggered by a user by selecting a selectable element;

FIG. 5 illustrates displayed items in the form of a list that includes aselectable element that includes an action visualization of an actiontaken by a user selecting a selectable element;

FIG. 6 illustrates displayed items in the form of a part that is aselectable element that contains an action visualization that identifiesan action taken upon selecting a selectable element;

FIG. 7 illustrates a much more detailed user interface that includes acanvas populated by a large number of selectable elements; and

FIG. 8 illustrates a flowchart of a method for presenting a dialogassociated with an action in accordance with the principles describedherein.

DETAILED DESCRIPTION

At least some embodiments described herein relate to dialogs within auser interface. The user interface has multiple selectable elements, theselection of each of which initiating a corresponding action. Each timethat any of the elements is selected, and a corresponding actioninitiated, there is the potential for the user interface to display adialog associated with the initiated action. The dialogs are displayedso as to be positioned with respect to the element whose selectioncaused the corresponding action to be initiated.

In some cases, the dialog may have a resolution control associated withit, the selection of which causes the dialog to be removed. The displaydistance between the selected element and the resolution control may bedesigned to be reduced. For instance, if the dialog appears below theselected element whose selection initiated the action, the resolutioncontrol might appear in the upper half of the dialog.

The dialog may be modeless in that the dialog need not be resolvedbefore performing further actions and does not block the user interfacefrom allowing other interactions. Thus, multiple dialogs might bepresented over time, as the resolution of such dialogs may be postponedwhile other actions are performed.

Some introductory discussion of a computing system will be describedwith respect to FIG. 1. Then, example user interfaces, methods andsupporting architectures will be described with respect to subsequentfigures.

Computing systems are now increasingly taking a wide variety of forms.Computing systems may, for example, be handheld devices, appliances,laptop computers, desktop computers, mainframes, distributed computingsystems, or even devices that have not conventionally been considered acomputing system. In this description and in the claims, the term“computing system” is defined broadly as including any device or system(or combination thereof) that includes at least one physical andtangible processor, and a physical and tangible memory capable of havingthereon computer-executable instructions that may be executed by theprocessor. The memory may take any form and may depend on the nature andform of the computing system. A computing system may be distributed overa network environment and may include multiple constituent computingsystems.

As illustrated in FIG. 1, in its most basic configuration, a computingsystem 100 typically includes at least one processing unit 102 andmemory 104. The memory 104 may be physical system memory, which may bevolatile, non-volatile, or some combination of the two. The term“memory” may also be used herein to refer to non-volatile mass storagesuch as physical storage media. If the computing system is distributed,the processing, memory and/or storage capability may be distributed aswell. As used herein, the term “executable module” or “executablecomponent” can refer to software objects, routines, or methods that maybe executed on the computing system. The different components, modules,engines, and services described herein may be implemented as objects orprocesses that execute on the computing system (e.g., as separatethreads).

In the description that follows, embodiments are described withreference to acts that are performed by one or more computing systems.If such acts are implemented in software, one or more processors of theassociated computing system that performs the act direct the operationof the computing system in response to having executedcomputer-executable instructions. For example, such computer-executableinstructions may be embodied on one or more computer-readable media thatform a computer program product. An example of such an operationinvolves the manipulation of data. The computer-executable instructions(and the manipulated data) may be stored in the memory 104 of thecomputing system 100. Computing system 100 may also containcommunication channels 108 that allow the computing system 100 tocommunicate with other message processors over, for example, network110.

The computing system 100 also includes a display 112 on which a userinterface, such as the user interfaces described herein, may berendered. Such user interfaces may be generated in computer hardware orother computer-represented form prior to rendering. The presentationand/or rendering of such user interfaces may be performed by thecomputing system 100 by having the processing unit(s) 102 execute one ormore computer-executable instructions that are embodied on one or morecomputer-readable media. Such computer-readable media may form all or apart of a computer program product.

Embodiments described herein may comprise or utilize a special purposeor general-purpose computer including computer hardware, such as, forexample, one or more processors and system memory, as discussed ingreater detail below. Embodiments described herein also include physicaland other computer-readable media for carrying or storingcomputer-executable instructions and/or data structures. Suchcomputer-readable media can be any available media that can be accessedby a general purpose or special purpose computer system.Computer-readable media that store computer-executable instructions arephysical storage media. Computer-readable media that carrycomputer-executable instructions are transmission media. Thus, by way ofexample, and not limitation, embodiments of the invention can compriseat least two distinctly different kinds of computer-readable media:computer storage media and transmission media.

Computer storage media includes RAM, ROM, EEPROM, CD-ROM or otheroptical disk storage, magnetic disk storage or other magnetic storagedevices, or any other tangible medium which can be used to store desiredprogram code means in the form of computer-executable instructions ordata structures and which can be accessed by a general purpose orspecial purpose computer.

A “network” is defined as one or more data links that enable thetransport of electronic data between computer systems and/or modulesand/or other electronic devices. When information is transferred orprovided over a network or another communications connection (eitherhardwired, wireless, or a combination of hardwired or wireless) to acomputer, the computer properly views the connection as a transmissionmedium. Transmissions media can include a network and/or data linkswhich can be used to carry or desired program code means in the form ofcomputer-executable instructions or data structures and which can beaccessed by a general purpose or special purpose computer. Combinationsof the above should also be included within the scope ofcomputer-readable media.

Further, upon reaching various computer system components, program codemeans in the form of computer-executable instructions or data structurescan be transferred automatically from transmission media to computerstorage media (or vice versa). For example, computer-executableinstructions or data structures received over a network or data link canbe buffered in RAM within a network interface module (e.g., a “NIC”),and then eventually transferred to computer system RAM and/or to lessvolatile computer storage media at a computer system. Thus, it should beunderstood that computer storage media can be included in computersystem components that also (or even primarily) utilize transmissionmedia.

Computer-executable instructions comprise, for example, instructions anddata which, when executed at a processor, cause a general purposecomputer, special purpose computer, or special purpose processing deviceto perform a certain function or group of functions. The computerexecutable instructions may be, for example, binaries, intermediateformat instructions such as assembly language, or even source code.Although the subject matter has been described in language specific tostructural features and/or methodological acts, it is to be understoodthat the subject matter defined in the appended claims is notnecessarily limited to the described features or acts described above.Rather, the described features and acts are disclosed as example formsof implementing the claims.

Those skilled in the art will appreciate that the invention may bepracticed in network computing environments with many types of computersystem configurations, including, personal computers, desktop computers,laptop computers, message processors, hand-held devices, multi-processorsystems, microprocessor-based or programmable consumer electronics,network PCs, minicomputers, mainframe computers, mobile telephones,PDAs, pagers, routers, switches, and the like. The invention may also bepracticed in distributed system environments where local and remotecomputer systems, which are linked (either by hardwired data links,wireless data links, or by a combination of hardwired and wireless datalinks) through a network, both perform tasks. In a distributed systemenvironment, program modules may be located in both local and remotememory storage devices.

FIG. 2 abstractly illustrates an environment 200 that includes a userinterface 201 that has multiple selectable elements 202. In theillustrated case, the user interface includes selectable elements 202Athrough 202F. As a side note, the user interface 201 is quite wide, andthus a typical display would not be able to display the entire userinterface 201 simultaneously. Nevertheless, the principles describedherein are not limited to the particular dimensions or shape of the userinterface.

Each of the selectable elements 202A through 202F has a correspondingcomputing action that is initiated upon selection of the correspondingselected element. A “computing action” is defined as an action that acomputing system may perform. Examples include querying for database,sending a message, retrieving data, displaying a new element, updatingdata, and so forth.

FIG. 3 illustrates a supporting architecture 300 for a user interface301. For instance, the user interface 301 is an example of the userinterface 200 of FIG. 2. The supporting architecture 300 is illustratedas including a user interface presentation component 311 capable ofpresenting a user interface with multiple selectable elements. Forinstance, the user interface presentation component 311 may present theuser interface 301, an example of which being the user interface 200.

A user may manipulate a selecting control 312 to select any of theselectable elements within the user interface 301. For instance, if theuser interface 301 were the user interface 200 of FIG. 2, the selectingcontrol 312 may be used to select any of the selectable elements.

An activation module 321 may be used to respond to the selection byinitiating a computing action associated with the selected element. Adialog determination component 331 determines when actions are to havean associated dialog appear on the user interface 301. A dialogpresentation component 341 presents a dialog on the user interface to bepositioned with respect to the selectable element whose selection causedthe corresponding action to be initiated.

FIGS. 4 through 6 illustrate various displayed elements with acorresponding dialog presented underneath the selected element whoseselection caused the action associated with the dialog to be initiated.

For instance, FIG. 4 illustrates a user interface 400 that includes auser interface element 401. The user interface element 401 includes aselectable element 411 that includes an action visualization 421 of anaction trigger by a user by selecting the selectable element 411.Furthermore, the selectable element may be the actual actions thetrigger the modeless dialogs. In this description and in the claims, a“blade” is a visual element that occupies an entire extent of onedimension of a user interface. For instance, suppose a canvas extendsalong a single extendable dimension. A blade might then occupy a rangeof space along the extendible dimension, and occupy an entire extent (orat least most of the extent) in a dimension orthogonal to the extendibledimension of the canvas.

The displayed items 400 also include a dialog 412 that appears beneaththe selectable element 411. The dialog 412 includes two resolutionelements 431 and 432 appearing in the upper half of the correspondingdialog 412 in the upper right corner. Accordingly, from the time thatthe user selects the action visualization 421 in the selectable element411, until the time the user selects one of the resolution elements 431and 432, the dialog 412 will continue to appear. The dialog 412 alsoincludes an adornment 441 that refers to the corresponding actionvisualization 421. Accordingly, the user need not navigate very farvertically between the initiation of the action and the resolution ofthe corresponding dialog. Furthermore, the user can mentally referencethe action that caused the dialog to appear in the first place. This isquite important as the user may leave the dialog unresolved for quitesome time, such that by the time the user returns, the reminder may bequite helpful.

FIG. 5 illustrates displayed items 500 in the form of a list 501 thatincludes a selectable element 511 that includes an action visualization521 of an action taken by a user selecting the selectable element 511.In this case, the selectable element 511 is an item from the list 501,and the action visualization 521 is a value from that item. Thedisplayed items 500 also include a dialog 512 that again appears beneaththe selectable element 511. The dialog 512 includes two resolutionelements 531 and 532 again appearing in the upper half of thecorresponding dialog 512 in the upper right corner. The dialog 512 alsoincludes an adornment 541 that refers to the corresponding actionvisualization 521.

FIG. 6 illustrates displayed items 600 in the form of a part 601 that isa selectable element 611 that contains an action visualization 621 thatidentifies an action taken upon selecting the selectable element 611. Apart 601 may be, for instance, a selectable element from within a blade.The displayed items 600 also include a dialog 612 that again appearsbeneath the selectable element 611. The dialog 612 includes tworesolution elements 631 and 632 again appearing in the upper half of thecorresponding dialog 612 in the upper right corner. The dialog 612 alsoincludes an adornment 641 that refers to the corresponding actionvisualization 621.

Thus, regardless of the type of the selected element, the dialogpresentation component 341 displays the dialog in a consistent manneracross types. For instance, whether the selectable element is a blade(as in FIG. 4), an item from a list (as in FIG. 5), or a part of a blade(as in FIG. 6), the dialog (for at least most cases) is displayedsimilarly in that the dialog appears below the selectable element, withthe resolution controls in the upper right corner of the dialog, andwith an adornment pointing to the action visualization. This gives theuser a consistent experience with dialogs regardless of the type ofselectable element that initiated the action associated with the dialog.

FIG. 7 illustrates a much more detailed user interface 700 that includesa canvas populated by a large number of selectable elements. Only a fewof the selectable elements are labeled as they are more relevant for thediscussion herein. In FIG. 7, the user has a selecting control in theform of a pointer 701. The canvas might have originally included only afavorites area 710 that includes multiple selectable elements includingselectable element 711. When the selectable element 711 is selected, anew blade 720 appears and as well as being a selectable element itself,might further include selectable elements such as selectable element721. When the selectable element 721 is selected, a further blade 730appears and as well as being a selectable element itself, might furtherinclude selectable elements such as selectable element 731. When theselectable element 731 is selected, a further blade 740 appears and aswell as being a selectable element itself, might further includeselectable elements such as selectable element 741. This may continue toallow the user to engage in a journey building up a canvas of historyshowing the path taken to get to where the user is presently.

In the context of FIG. 7, any of the selectable elements that may resultin an action being taken if selected might have a corresponding dialogthat appears at some point during the course of executing the action.The dialog presentation component 341 might present the dialogconsistently regardless of the selectable element that is selected. Forinstance, in a hierarchical structure of selectable element, the dialogmay appear consistent regardless of whether the parent element isselected, or the child element is selected.

As an example, if the user selects a blade-level command to initiate anaction, the corresponding dialog may appear below the selectablecommand, with the resolution controls being in the upper right corner ofthe dialog, and with an adornment that points to the correspondingaction visualization in the selectable element. Likewise, if the userselects an item from a list contained within that blade, or if the userselects a part contained within the blade, to thereby initiate anaction, again a dialog may appear below the selectable element, with theresolution controls in the upper right corner of the dialog, and with anadornment pointing to the action visualization within the selectableelement.

As previously mentioned, the presentation of the dialog is modeless. Inother words, the dialog presentation module 341 presents the dialogwithout blocking work on the user interface 301. Accordingly, the dialogpresentation module is capable of presenting multiple dialogs, each fordifferent actions, concurrently. There might be one dialog open from aweek ago, another opened yesterday, and another just barely opened. Ifthe user is not comfortable immediately selecting a resolution controlfor any dialog, the user may postpone the decision on resolution.

As examples only, the dialog might include a request for confirmationthat the user wants the computing action to occur that was invoked whenthe user selected the selectable control. The user might resolve thedialog by confirming that the user wants the computing action to occur,or confirming that the user does not want the computing action to occur.The dialog might also request that the user confirm that some action hasoccurred (such as the reviewing of a license agreement). The dialogmight also be a message or notification of some type (e.g., a warning orerror message), and the resolution is a confirmation that the message ornotification has been reviewed and perhaps understood by the user. Thedialog might also be a progress indicator for the computing actioninitiated through selection of the corresponding selectable element.

FIG. 8 illustrates a flowchart of a method 800 for presenting a dialogassociated with an action in accordance with the principles describedherein. The method is performed in the context in which a user interfaceis displayed and has multiple selectable elements, each initiating anaction upon selection. An example of such a user interface is the userinterface 200 of FIG. 2.

The method 800 is initiated upon determining that a user has selected aselectable element (event 801). For instance, referring to FIG. 3, theuser might use the selecting control 312 to select one of the selectableelements from the user interface 301, an example of which being the userinterface 200 of FIG. 2.

The computing system then initiates a computing action corresponding tothe selected element (act 802). This might be performed by, foractivation module 321. The computing system then presents a dialogassociated with the computing action on the user interface so as to bepositioned with respect to the selected element (act 803). For instance,the dialog determination component 331 may determine that a dialog is toappear, and the dialog presentation component 341 presents the dialog.

From that point, the dialog remains and awaits resolution from the user(act 804). This awaiting action does not prevent the user fromcontinuing work on the user interface. Accordingly, other instances ofthe method 800 may be initiated, and even completed, while this instanceof the method 800 remains in waiting mode (act 804). Thus, each dialogis modeless. There may be multiple dialogs pending without resolution atthe same time, and resolution of any given dialog does not impeded workwithin the user interface. If the user desires to use the user interfaceto perform discovery required to determine how to resolve the dialog,the user may do so. If the user decides to avoid resolution of a dialogfor some time in favor of other computing activities, the user may doso.

At some point, the user performs a resolution of the dialog (act 805).For instance, the user might confirm understanding of a message, confirmthat some action has been taken (such as the reading of the licenseagreement), or confirming or denying that the user wishes an action tobe taken. In response to determining that a resolution action hasoccurred (act 805), the dialog is removed (act 806).

Thus, modeless dialogs have been described in a manner that they areconveniently and intuitively associated with an action visualization.The present invention may be embodied in other specific forms withoutdeparting from its spirit or essential characteristics. The describedembodiments are to be considered in all respects only as illustrativeand not restrictive. The scope of the invention is, therefore, indicatedby the appended claims rather than by the foregoing description. Allchanges which come within the meaning and range of equivalency of theclaims are to be embraced within their scope.

What is claimed is:
 1. A computer program product comprising one or morecomputer-readable storage media having thereon computer-executableinstructions that are structured such that, when executed by one or moreprocessors of a computing system, cause the computing system toinstantiate and/or operate the following: a user interface presentationcomponent capable of presenting a user interface with a plurality ofselectable elements, each initiating an action upon selection; a dialogdetermination component that determines when actions are to have anassociated dialog appear on the user interface; and a dialogpresentation component configured to, for each of a plurality of actionsthat the dialog determination component determines that are to have anassociated dialog, present a dialog on the user interface in a mannerpositioned on the user interface with respect to the selectable elementwhose selection caused the corresponding action to be initiated.
 2. Thecomputer program product in accordance with claim 1, wherein for each ofat least a majority of the dialogs presented by the dialog presentationcomponent on the user interface, the corresponding dialog appearsunderneath the selectable element whose selection initiated the action,the corresponding dialog also including a set of one or more resolutionelements appearing in the upper half of the corresponding dialog.
 3. Thecomputer program product in accordance with claim 1, wherein for each ofat least a majority of the dialogs presented by the dialog presentationcomponent on the user interface, the corresponding dialog has anadornment that identifies a visualization of the corresponding actioninitiated by the corresponding selectable element.
 4. The computerprogram product in accordance with claim 1, wherein the user interfacedisplays a plurality of hierarchically structured selectable elementsthat includes at least a first selectable element, a parent element,that contains a plurality of child elements, the dialog presentationcomponent configured to display a dialog for the parent element in aconsistent manner as it would a dialog for a particular child element ofthe plurality of child elements.
 5. The computer program product inaccordance with claim 4, the plurality of selectable elements beingpositioned on a canvas that extends in an extendable dimension, theparent element being a blade that occupies the canvas over a givenextent along the extendable dimension.
 6. The computer program productin accordance with claim 5, the particular child element being a part ofa blade.
 7. The computer program product in accordance with claim 5, theparticular child element being an item from a list.
 8. The computerprogram product in accordance with claim 1, the dialog presentationmodule presenting dialogs without blocking work on the user interface.9. The computer program product in accordance with claim 1, the dialogpresentation module capable of presenting multiple dialogs, each fordifferent actions, simultaneously.
 10. A method for presenting a dialogassociated with an action, the method comprising: an act of presenting auser interface having a selectable element that initiates an action uponselection; an act of determining that a user has selected the selectableelement; an act of initiating a computing action corresponding to theselected element in response to determining that the user has selectedthe selected element; and an act of presenting a dialog associated withthe computing action on the user interface so as to be positioned withrespect to the selected element.
 11. The method in accordance with claim10, further comprising: an act of determining that a user has performeda resolution action with respect to the presented dialog; and an act ofremoving the dialog in response to the resolution action.
 12. The methodin accordance with claim 11, the selected element being a first selectedelement, the computing action being a first computing action, and thedialog being a first dialog, the method further comprising: an act ofdetermining that a user has selected a second selectable element; an actof initiating a second computing action corresponding to the secondselected element in response to determining that the user has selectedthe second selected element; and an act of presenting a second dialogassociated with the second computing action on the user interface so asto be positioned with respect to the second selected element.
 13. Themethod in accordance with claim 12, the act of initiating the secondcomputing action occurring after the act of initiating the firstcomputing action, and before the resolution action of the first dialogassociated with the first computing action.
 14. The method in accordancewith claim 12, wherein the act of presenting the second dialog occurswhile the first dialog is still presented on the user interface.
 15. Themethod in accordance with claim 11, the dialog including a request forconfirmation that the user wants the computing action to occur, and theresolution action includes the user confirming that the user wants thecomputing action to occur.
 16. The method in accordance with claim 11,the dialog including a request for confirmation that the user wants thecomputing action to occur, and the resolution action includes the userindicating that the user does not want the computing action to occur.17. The method in accordance with claim 11, the dialog being a message.18. The method in accordance with claim 17, the resolution action beingconfirmation that the message has been viewed by the user.
 19. Themethod in accordance with claim 10, the dialog being a progressindicator for the computing action.
 20. A computer program productcomprising one or more computer-readable storage media having thereoncomputer-executable instructions that are structured such that, whenexecuted by one or more processors of a computing system, cause thecomputing system to present a dialog associated with an action, themethod comprising: in response to determining that a user has selected aselectable element, an act of initiating a computing actioncorresponding to the selected element; and an act of presenting amodeless dialog associated with the computing action on the userinterface so as to be positioned with respect to the selected element.